// 给定一个包含 n 个整数的数组 nums 和一个目标值 target，判断 nums 中是否存在四个元素 a，b，c 和 d ，使得 a + b + c + d 的值与 target 相等？找出所有满足条件且不重复的四元组。

// 注意：答案中不可以包含重复的四元组

//  console.log([2,2,2,2]==[2,2,2,2])
// let a = [1, 2, 3, 4];
// let b = [1, 2, 3, 4];
// console.log(a == b) //false
// a = a.toString();
// b = b.toString();
// console.log(a == b);//true

var fourSum = function(nums, target) {
    let res = []
    for (let i = 0; i < nums.length - 3; i++) { // 每个人
        for (let j = i + 1; j < nums.length - 2; j++) { // 依次拉上其他每个人
            for (let k = j + 1; k < nums.length - 1; k++) { // 去问剩下的每个人
                for (let h = k + 1; h < nums.length; h++) {
                    if (nums[i] + nums[j] + nums[k] + nums[h] === target) {
                        // 排序取消元素相同顺序不同的数组
                        let temp = [nums[i], nums[j], nums[k], nums[h]].sort((a, b) => { return a - b });
                        res.push(temp);
                        // 注意push的用法
                    }
                }
            }
        }
    }
    // 对数组去重
    for (let i = 0; i < res.length; i++) {
        for (let j = i + 1; j < res.length; j++) {
            if (res[i].toString() == res[j].toString()) {
                res.splice(j, 1);
                // splice会更改原数组的值，返回值是删除的内容
                j--;
            }
        }
    }
    return res
};